Cloud Shell のセッションを終了した後も gcloud CLI 構成を維持したい

Cloud Shell のセッションを終了した後も gcloud CLI 構成を維持したい

結論、.bashrc ファイルの末尾に export CLOUDSDK_CONFIG=$HOME/.config/gcloud を追加する。
Clock Icon2024.08.31

こんにちは!エノカワです。

Cloud Shell では、gcloud CLI 構成を使うことでプロジェクトやアカウントの設定を名前付きで管理することができます。
ですが、gcloud CLI の設定は、Cloud Shell の現在のタブのみに設定され、セッションを終了してしまうと構成が維持されません。
そのため、Cloud Shell を再起動すると、以前に使用していた gcloud CLI 設定がリセットされてしまいます。
今回は、Cloud Shell のセッションを終了した後も gcloud CLI 構成を維持する方法をご紹介します。

gcloud CLI 構成 とは

gcloud CLI 構成は、プロジェクト、アカウント、デフォルトのリージョンやゾーンなど、Google Cloud における作業環境を定義する設定です。
構成を使うことで、異なるプロジェクトや環境を切り替えることが簡単にでき、設定の再入力の手間を省くことができます。
gcloud config configurations createコマンドを使用して構成を作成し、gcloud config setコマンドで具体的な設定を行います。

gcloud CLI 構成を維持するには

ドキュメントにバッチリ記載されていました。

gcloud CLI の設定

常に同じ gcloud CLI の構成を使用するには、.bashrc ファイルの末尾に export CLOUDSDK_CONFIG=$HOME/.config/gcloud を追加してから、gcloud config configurations create CONFIG_NAME を実行して必要な構成を作成します。

試してみた

さっそく記載の方法を試してみました。
※コマンド中のプロジェクトやアカウントは例示のためのダミーとなります。

CLOUDSDK_CONFIG 設定前

gcloud CLI 構成の一覧を表示します。
defaultのみです。

$ gcloud config configurations list
NAME: default
IS_ACTIVE: True
ACCOUNT:
PROJECT: default-project
COMPUTE_DEFAULT_ZONE: 
COMPUTE_DEFAULT_REGION: 

新しい構成を作成します。

$ gcloud config configurations create my-config
Created [my-config].
Activated [my-config].

$ gcloud config set project my-project
Updated property [core/project].

$ gcloud config set account user@example.com
Updated property [core/account].

my-configが追加され、アクティブ状態になりました。

$ gcloud config configurations list
NAME: default
IS_ACTIVE: True
ACCOUNT: 
PROJECT: default-project
COMPUTE_DEFAULT_ZONE: 
COMPUTE_DEFAULT_REGION: 

NAME: my-config
IS_ACTIVE: Active
ACCOUNT: user@example.com
PROJECT: my-project
COMPUTE_DEFAULT_ZONE: 
COMPUTE_DEFAULT_REGION:

Cloud Shell を再起動して、gcloud CLI 構成の一覧を表示します。

$ gcloud config configurations list
NAME: default
IS_ACTIVE: True
ACCOUNT:
PROJECT: default-project
COMPUTE_DEFAULT_ZONE: 
COMPUTE_DEFAULT_REGION: 

先ほど作成したmy-configが消えちゃいました。。

CLOUDSDK_CONFIG 設定後

.bashrc ファイルにCLOUDSDK_CONFIG設定後、同様の手順で gcloud CLI 構成を作成してみましょう。

.bashrc ファイルの末尾にexport CLOUDSDK_CONFIG=$HOME/.config/gcloudを追加します。

echo 'export CLOUDSDK_CONFIG=$HOME/.config/gcloud' >> ~/.bashrc

my-configを作成します。

$ gcloud config configurations create my-config
Created [my-config].
Activated [my-config].

$ gcloud config set project my-project
Updated property [core/project].

$ gcloud config set account user@example.com
Updated property [core/account].

Cloud Shell を再起動して、gcloud CLI 構成の一覧を表示します。

$ gcloud config configurations list
NAME: default
IS_ACTIVE: True
ACCOUNT: 
PROJECT: default-project
COMPUTE_DEFAULT_ZONE: 
COMPUTE_DEFAULT_REGION: 

NAME: my-config
IS_ACTIVE: Active
ACCOUNT: user@example.com
PROJECT: my-project
COMPUTE_DEFAULT_ZONE: 
COMPUTE_DEFAULT_REGION:

先ほど作成したmy-configが残っています!
さらにmy-configがアクティブの状態も維持されています。

まとめ

以上、Cloud Shell のセッションを終了した後も gcloud CLI 構成を維持する方法のご紹介でした。

この設定を行うことで、Cloud Shell のセッションが終了しても gcloud CLI の構成が保持され、毎回の再設定の手間が省けます。

個人的に Cloud Shell を再起動すると以前設定していた gcloud CLI の設定が消えて困ったことがあったので、もしかしたら同様の事象でお困りの方もいらっしゃるかと思い、ご紹介させていただきました。

Cloud Shell 作業効率化の一助となれば幸いです!

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.